
现象重现。
作为资深星铁玩家兼RIME输入法老用户我遇到过类似困惑,添加了星铁专项词库后满怀期待地敲键却发现输入法里并没有出现那些新词,打开RIME的词汇管理一看好家伙原来词库里已经有不少星铁词汇了,添加的词库似乎毫无作用,这就尴尬了明明加进去了却像没加一样让人怀疑是不是白费功夫,实际上很多玩家都会遇到这个“添加词库后,上面的星铁词汇都已经收录”的假象,其实并非词汇重复而是RIME的词库加载机制出了问题,常见表现是自定义词库的优先级不够或者词库文件没有被正确部署到用户目录中导致系统默认词库覆盖了你的自定义内容。
根源探究。
那么问题出在哪呢,我反复测试后发现RIME的词库管理分为系统级和用户级,系统词库通常存放在安装目录下而用户词库则位于用户配置文件夹中,当你添加一个外部词库时必须确保它被放入正确的目录比如“Rime”下的“luna_pinyin.extended.dict.yaml”这类文件中,如果直接扔到输入法根目录或者放错了位置系统根本不会读取,另一个常见原因是词库文件的编码问题,RIME要求UTF-8无BOM格式如果文件是ANSI或其他编码加载时会乱码或直接忽略,还有一点是词库的权重设置默认情况下用户词库的权重低于系统词库,即使词汇被加载也会被系统词库的同词条覆盖掉,所以看似“上面的星铁词汇都已经收录”其实是系统词库里的词汇在作怪。
重新部署。
第一步也是最核心的一步就是强制重新部署RIME,很多玩家以为添加词库后重启输入法就行实际上RIME需要手动触发部署,具体操作是右键点击任务栏的RIME图标选择“重新部署”或者直接按下快捷键Ctrl+`然后选择“重新部署”,部署过程中会重新编译所有词库文件此时你的新词库才会被真正加载,如果部署后仍然没有效果那就需要进入用户文件夹手动删除缓存文件比如“build”目录下的内容再重新部署,注意清理缓存时要先关闭输入法进程否则可能删不掉,我亲身实践过有时候反复部署两三次才能生效这是因为文件有滞后性。
检查格式。
如果重新部署无效那就必须检查词库文件的格式了,首先确认文件是纯文本格式且扩展名为yaml或txt,然后打开看看第一行是否有正确的schema头部比如“# Rime dictionary”,词库的结构必须是词条加频率加编码的形式例如“星穹铁道 100000”,注意每一行都要用制表符或空格分隔不能混用,另外文件保存时一定要选UTF-8无BOM可以在记事本另存为时选择编码为UTF-8,很多玩家从论坛下载的词库编码不对导致加载失败,我推荐用Notepad++打开并转换格式,还有一个小细节是词库的排序频率越高越优先,但如果你添加的词频太低即使加载了也不会排在前面看起来就像没收录一样,可以手动调整频率数值。
优先级设置。
即便词库加载成功如果优先级低于系统词库仍然会出现你打字时自动选择系统词库里的同音词,解决方法是在用户词库文件里添加一个“sort: by_weight”之类的排序标记或者在用户配置文件中指定词库的加载顺序,更直接的方法是把你自定义的词库设置为“默认词库”但这需要修改输入法方案,一个简单粗暴的办法是将你的星铁词汇频率设得极高比如999999这样RIME就会优先输出你的词,不过要注意避免影响其他正常词汇,另外还可以利用RIME的“反查”功能但比较复杂新手不建议,作为老玩家我通常会把常用星铁词汇单独做成一个txt文件然后作为“user_dict”导入这样会自动提升权重。
实战心得。
最后分享一个我的独家技巧,如果你添加词库后仍然发现“上面的星铁词汇都已经收录”不妨先检查一下你的RIME版本,旧版本存在一些bug导致词库加载不全建议升级到最新版,另外不要一次性添加太多词库一次加一个然后部署测试,我常用的流程是下载星铁专用词库检查编码放入“用户文件夹/Rime/luna_pinyin.extended.dict.yaml”中保存后右键重新部署,然后输入几个星铁角色名测试,如果没出现就打开“用户文件夹/Rime/build”目录查看是否有对应的编译产物如果没有说明文件路径不对,归根结底这种问题多半是操作步骤遗漏导致只要耐心按照流程走一遍就能解决,记住RIME是个高度可定制的工具但初期配置需要一些细心,希望这些经验能帮你摆脱词库加不进去的烦恼愉快地用星铁词汇畅聊游戏。
相关文章